package com.creative.user.domain;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.creative.core.page.PageDomain;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Email;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.Date;

/**
 * @author Ling
 * @description 用户信息表
 * @date 2024-11-11
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString(callSuper = true)
@ExcelIgnoreUnannotated
public class UserInfo extends PageDomain implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 用户编号
     */
    @JsonProperty("userId")
    @ExcelProperty("用户编号")
    private String userId;

    /**
     * 用户昵称
     */
    @ExcelProperty("用户昵称")
    private String nickName;

    /**
     * 用户邮箱
     */
    @ExcelProperty("用户邮箱")
    private String email;


    /**
     * 用户头像
     */
    @ExcelProperty("小程序头像")
    private String mpAvatar;

    /**
     * 用户密码
     */
    @ExcelProperty("用户密码")
    private String password;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("创建时间")
    private Date createTime;

    /**
     * 上次登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("上次登录时间")
    private Date lastLoginTime;

    /**
     * 用户状态
     */
    @ExcelProperty("用户状态")
    private Integer status;

    /**
     * 用户已使用空间
     */
    @ExcelProperty("用户已使用空间")
    private Long useSpace;

    /**
     * 用户总空间
     */
    @ExcelProperty("用户总空间")
    private Long totalSpace;

    /**
     * 删除标识
     */
    @ExcelProperty("删除标识")
    private Integer delFlag;

    /**
     * 用户头像地址
     */
    @ExcelProperty("用户头像地址")
    private String avatar;

    /**
     * 微信OpenId
     */
    @ExcelProperty("微信OpenId")
    private String wxOpenId;

}